리눅스마스터 1급 기출문제·모의고사·오답노트·자동채점

2009년03월15일 45번

[리눅스 시스템 관리]
다음 fork()와 exec() 시스템 호출에 대한 설명 중 틀린 것은?

  • ① fork() 시스템 호출은 어떤 프로세스가 자신의 사본을 생성하는 데 사용한다.
  • ② exec() 시스템 호출은 프로세스의 메모리 공간을 수행 가능 파일로 대체하여 다른 프로그램을 호출한다.
  • ③ exec() 시스템 호출을 수행해도 시스템 호출을 한 프로세스의 특성이 변하지 않는 한 전체 시스템 내의 프로세스 수는 동일하다.
  • ④ fork() 시스템 호출을 하면 자식 프로세스의 PID가 부모 프로세스에게 리턴되고 자식 프로세스는 부모 프로세스의 PID를 받는다.
(정답률: 38%)

문제 해설

정답은 "exec() 시스템 호출을 수행해도 시스템 호출을 한 프로세스의 특성이 변하지 않는 한 전체 시스템 내의 프로세스 수는 동일하다." 이다. exec() 시스템 호출을 수행하면 현재 프로세스의 메모리 공간이 새로운 프로그램의 코드와 데이터로 대체되므로 프로세스의 특성이 변한다.

fork() 시스템 호출을 하면 부모 프로세스는 자식 프로세스의 PID를 받고, 자식 프로세스는 부모 프로세스의 PID를 받는다. 이는 각각의 프로세스가 서로 다른 메모리 공간을 가지기 때문에 가능하다. 부모 프로세스는 fork() 호출 이전의 상태를 유지하면서 자식 프로세스를 생성하고, 자식 프로세스는 fork() 호출 이전의 상태를 그대로 복사받아 새로운 프로세스를 시작한다.
AppStore에서 다운로드 APK 다운로드

연도별

진행 상황

0 오답
0 정답